﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using SGRapidForm.Common;
using SGRapidForm.Permission.Entity;

namespace SGRapidForm.Permission.Service.Interface
{
   [ServiceContract(Namespace = "http://www.solutiongear.net/SGRapidForm/")]
   public interface IModuleService
    {

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        List<ModuleEntity> Module_GetAll();

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        List<ModuleEntity> Module_PagingGet(Int32 startRecord, Int32 maxRecords, String sortColumns, String filterConditions);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        int Module_PagingGetCount(String filterConditions);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        bool Module_Add(ModuleEntity module);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        bool Module_Delete(string keyid);
        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        bool Module_Update(ModuleEntity userDetails);
        
        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        bool Module_BulkDelete(string keyids);
        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
        ModuleEntity Module_GetByKeyid(string keyid);

        [OperationContract]
        [FaultContract(typeof(ServiceExceptionDetail))]
       List<ModuleEntity> Module_GetByRokeKeyid(string rolekeyid);
    }
}
